Skip to main content

Introducción a los patrones de diseño

Definición

Los patrones de diseño son una herramienta que nos permite reutilizar soluciones a problemas comunes, de esta forma se evita tener que reinventar la rueda cada vez que se presenta un problema.

Son una guía para el diseño de software, nos permiten diseñar software de forma más eficiente y con mayor calidad.

Más información

Se puede encontrar más información sobre los patrones de diseño en:

Categorías principales de los patrones de diseño

  • Los patrones de diseño se agrupan en diferentes categorías según el propósito y el área de aplicación en el diseño de software, estas categorías proporcionan un marco conceptual que ayuda a entender cómo se utilizan los patrones y cuál es su función en el desarrollo de sistemas de software.
CategoríaPropósitoCaracterísticasEjemplos
CreacionalesCrear objetos de manera flexible y reutilizableProporcionan mecanismos para la creación de objetos de forma dinámica, sin acoplar el código a las clases concretas.Singleton, Factory Method, Abstract Factory, Builder, Prototype
EstructuralesSe ocupan de la composición de clases y objetos para formar estructuras más grandes y complejas.Se centran en cómo se organizan y relacionan las clases y objetos para lograr una mayor flexibilidad y reutilización del código.Adapter, Composite, Proxy, Facade, Decorator, Data Access Object (DAO), Data Transfer Object (DTO).
ComportamientoSe centran en la comunicación y la asignación de responsabilidades entre objetos.Estos patrones definen cómo los objetos interactúan entre sí y cómo distribuyen las tareas y responsabilidades en un sistema de software.Strategy, Observer, Command, Mediator, Memento, State, Template Method, Visitor.
ArquitectónicosSe ocupan de la estructura general de un sistema de software.Estos patrones definen la estructura general de un sistema de software y proporcionan un marco de trabajo para organizar y coordinar los componentes de un sistema.Model-View-Controller (MVC), Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Layered Architecture, Microservices, Event-Driven Architecture, Hexagonal Architecture, Clean Architecture.